/**
 * @Copyright:Copyright (c) 1992 - 2015
 * @Company: TengTong
 */
package com.tengtong.duang.commons.utils;

/**
 * 字符串工具类
 *
 * @author jai
 * @since: v1.0
 */
public class StringUtils {

	/**
	 * 判断一个字符串不是 null 并且非空（即空格，不包括制表符、中文空格等）
	 *
	 * @param s
	 * @return
	 */
	public static boolean notNullAndEmpty(String s){
		return  s != null && s.trim().length() > 0;
	}
	
	/**
	 * 判断一个字符串数组不是 null 并且非空（即空格，不包括制表符、中文空格等）
	 *
	 * @param s
	 * @return
	 */
	public static boolean notNullAndEmpty(String[] s){
		return  s != null && s.length > 0;
	}
	
	/**
	 * 判断一个字符串是 null
	 *
	 * @param s
	 * @return
	 */
	public static boolean isNull(String s){
		return s == null;
	}
	
	/**
	 * 判断一个字符串不是 null，但是为空（没内容或只有英文空格)
	 *
	 * @param s
	 * @return
	 */
	public static boolean isEmpty(String s){
		return s != null && s.trim().length() == 0;
	}

	/**
	 * NULL 或 Empty
	 *
	 * @param source
	 * @return
	 */
	public static boolean isNullOrEmpty(String s) {
		return isNull(s) || isEmpty(s);
	}

	/**
	 * 将字符串的第一个字母转为小写。
	 * 
	 *   firstCharLowerCase("Abc") = "abc"
	 *   firstCharLowerCase("java") = "java"
	 *   firstCharLowerCase(null) = null
	 *   firstCharLowerCase("")=""
	 *
	 * @param str
	 * @return
	 */
    public static String firstCharLowerCase(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return str;
        }
        return new StringBuilder(strLen)
            .append(Character.toLowerCase(str.charAt(0)))
            .append(str.substring(1))
            .toString();
    }

	/**
	 * 将字符串的第一个字母转为大写。
	 * 
	 *   firstCharUpperCase("Abc") = "Abc"
	 *   firstCharUpperCase("java") = "Java"
	 *   firstCharUpperCase(null) = null
	 *   firstCharUpperCase("")=""
	 *
	 * @param str
	 * @return
	 */
    public static String firstCharUpperCase(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return str;
        }
        return new StringBuilder(strLen)
            .append(Character.toTitleCase(str.charAt(0)))
            .append(str.substring(1))
            .toString();
    }
    
    
}
